#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <string.h>
#include <fcntl.h>
#include <sys/stat.h>

#include <sys/ipc.h>
#include <sys/msg.h>
void handler(int signal)
{
    if(signal==SIGINT)
    {
        printf("handler SIGINT\n");
    }
    else if(signal==SIGQUIT)
    {
        printf("handler SIGQUIT\n");
    }
    else if(signal==SIGTSTP)
    {
        printf("handler SIGSTOP\n");
    }
}
void main()
{
    // pid_t pid=fork();
    // if(pid<0)
    // {
    //     perror("fork");
    // }
    // if(pid==0)
    // {
    //     printf("this is a child process\n");
    //     sleep(3);
    //     kill(getppid(),SIGINT);
    // }
    // else
    // {
    //     while(1)
    //     {
    //         printf("i am a parent process\n");
    //         sleep(1);
    //     }
    // }
    // alarm(5);
    // while(1)
    // {
    //     printf("hello\n");
    //     sleep(1);
    // }
    // pid_t pid=fork();
    // if(pid==0)
    // {
    //     while(1)
    //     {
    //         printf ("heelo\n");
    //         sleep(1);
    //         pause();
    //     }
    // }
    // else
    // {
    //     printf("awrfgtt\n");
    //     sleep(4);
    //     printf("FDGH\n");
    //     raise(signal);
    // }
    signal(SIGINT,handler);
    signal(SIGSTOP,handler);
    signal(SIGQUIT,handler);
    while(1)
    {
        printf("hello\n");
        sleep(1);
    }
}